import cv2
import numpy as np
import matplotlib.pyplot as plt

# 加载大头照图像
image = cv2.imread('1.jpg')
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 将图像转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 使用Canny算子进行边缘检测
edges_canny = cv2.Canny(gray, 100, 200)

# 创建一个与原始图像大小相同的空白图像
segmented_image = np.zeros_like(image_rgb)

# 在空白图像上将分割区域置为原始图像对应位置的像素值
segmented_image[edges_canny != 0] = image_rgb[edges_canny != 0]

# 显示结果
fig, axes = plt.subplots(1, 2, figsize=(12, 6))
axes[0].imshow(image_rgb)
axes[0].set_title('Original Image')
axes[0].axis('off')

axes[1].imshow(segmented_image)
axes[1].set_title('Segmented Image')
axes[1].axis('off')

plt.tight_layout()
plt.show()
